home *** CD-ROM | disk | FTP | other *** search
/ Technotools / Technotools (Chestnut CD-ROM)(1993).ISO / batch / delay / delay.c next >
C/C++ Source or Header  |  1985-08-14  |  2KB  |  61 lines

  1. /*  DELAY - Delay for a period
  2.  
  3.     Version 1.04, created on 08/14/85 at 12:12:43
  4.  
  5. (C) COPYRIGHT 1985 by System Enhancement Associates; ALL RIGHTS RESERVED
  6.  
  7.     By:  Thom Henderson
  8.  
  9.     Description:
  10.          This program delays for a defined period of time, and then
  11.          terminates.  It is intended for use in batch files.
  12.  
  13.     Instructions:
  14.          Invoke this program with a statement of the form:
  15.  
  16.               delay <n>
  17.  
  18.          Where <n> is the decimal number of seconds to delay.  For example,
  19.          to delay for ten seconds, type:
  20.  
  21.               delay 10
  22.  
  23.     Language:
  24.          Computer Innovations Optimizing C86
  25. */
  26. #include <stdio.h>
  27.  
  28. int count = 0;                         /* countdown timer */
  29.  
  30. timer()                                /* timer tick routine */
  31. {
  32.     count--;                           /* decrement the counter */
  33. }
  34.  
  35. main(num,arg)                          /* system entry point */
  36. int num;                               /* number of arguments */
  37. char *arg[];                           /* pointers to arguments */
  38. {
  39.     int elev = 0;                      /* error level */
  40.  
  41.     if(num<2)
  42.          abort("Usage: delay <n>");
  43.  
  44.     count = atoi(arg[1]) * 18;         /* get delay counter */
  45.     intrinit(timer,0,0x1c);            /* take over timer interrupt */
  46.  
  47.     while(count>=0)                    /* wait for time to elapse */
  48.     {    if(!(count%18))               /* update display */
  49.               printf("Time: %d \r",count/18);
  50.          if(key_scan()!=EOF)           /* abort if requested */
  51.          {    if((key_getc()&0xff)==27)
  52.               {    elev = 1;
  53.                    break;
  54.               }
  55.          }
  56.     }
  57.  
  58.     intrrest(0x1c);                    /* give back timer interrupt */
  59.     return elev;
  60. }
  61.